<?php
global $medlem_side, $valgt_medlem, $wpdb, $hide_right_sidebar, $current_user;
require_once('./wp-admin/includes/admin.php');
require_once('./wp-admin/includes/user.php');
if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action'])) {
    switch ($_POST['action']) {
        case 'Nytt medlem':
            $medlem_side = 'ny';
            break;
        case 'Vis profil':
            if (isset($_POST['idnum']))
                $valgt_medlem = $_POST['idnum'];
            else
                $valgt_medlem = $current_user->id;
            $medlem_side = 'profil';
            break;
        case 'Registrer':
            $valgt_medlem = add_user($_POST);
            $medlem_side = 'profil';
            break;
        case 'Endre profil':
            $valgt_medlem = $_POST['idnum'];
            $medlem_side = 'rediger';
            break;
        case 'Slett':
            $valgt_medlem = $_POST['idnum'];
            if (current_user_can('delete_users')) {
                $medlem_side = 'slett';
            } else {
                $medlem_side = 'profil';
                echo 'Du har ikke tilgang til å slette medlemmer!';
            }
            break;
        case 'Bekreft':
            $valgt_medlem = $_POST['idnum'];
            if (current_user_can('delete_users')) {
                $user_info = get_userdata($valgt_medlem);
                $navn = $user_info->first_name . ' ' . $user_info->last_name;
                wp_delete_user($valgt_medlem);
                echo ("Bruker $navn er nå slettet.");
                $valgt_medlem = 0;
            } else {
                $medlem_side = 'profil';
                echo 'Du har ikke tilgang til å slette medlemmer.';
            }
            break;
        case 'Oppdater':
            $valgt_medlem = $_POST['idnum'];

            $error = array();
            $queries = array();

            /* If profile was saved, update profile. */
            
            if (!empty($_POST['pass1']) || !empty($_POST['pass2'])) {
                if ($_POST['pass1'] == $_POST['pass2'])
                    wp_update_user(array('ID' => $valgt_medlem, 'user_pass' => esc_attr ($_POST['pass1'])));
                else {
                    if (empty($_POST['pass1']) || empty($_POST['pass2'])) {
                        $mld = 'Ett av passordfeltene er tomme.';
                    } else {
                        $mld = 'Passordene du skrev inn er ulike.';
                    }
                    $error[] = __($mld . '<br />Passordet har ikke blitt oppdatert.', 'profile');
                }
            }
            
            if (!empty($_POST['email'])) {
                if (!is_email(esc_attr($_POST['email']))) {
                    $error[] = __('Epostadressen du skrev inn er ikke gyldig.</br>Vennligst prøv igjen.', 'profile');
                } else if (email_exists(esc_attr($_POST['email']))) {
                    if (email_exists(esc_attr($_POST['email'])) != $valgt_medlem)
                        $error[] = __('Denne epostadressen er allerede i bruk av en annen bruker.</br>Vennligst bruk en annen adresse', 'profile');
                } else {
                    wp_update_user(array('ID' => $valgt_medlem, 'user_email' => esc_attr($_POST['email'])));
                }
            }
            
            /* Sjekker at navn kun inneholder bokstaver, bindestrek og/eller punktum
             * (tar også med æøå i store og små bokstaver)
             */
            if (!empty($_POST['first_name'])) {
                if (!preg_match('/[^A-Za-z -.æøåÆØÅ]/', $_POST['first_name'])) {
                    update_user_meta($valgt_medlem, 'first_name', $_POST['first_name']);
                } else {
                    $error[] = __('Navn kan kun inneholde bokstaver, bindestrek og punktum.', 'profile');
                }
            }

            /* Sjekker at navn kun inneholder bokstaver, bindestrek og/eller punktum
             * (tar også med æøå i store og små bokstaver)
             */
            if (!empty($_POST['last_name'])) {
                if (!preg_match('/[^A-Za-z -.æøåÆØÅ]/', $_POST['last_name'])) {
                    update_user_meta($valgt_medlem, 'last_name', $_POST['last_name']);
                } else {
                    $error[] = __('Navn kan kun inneholde bokstaver, bindestrek og punktum.', 'profile');
                }
            }
            
            if ($_POST['fødselsdag'] != 'dag' || $_POST['fødselsmåned'] != 'mnd') {
                if ($_POST['fødselsdag'] == 'dag')
                    $error[] = __('Du har ikke valgt dag i fødselsdato.<br />Fødselsdatoen har ikke blitt oppdatert.', 'profile');
                else if ($_POST['fødselsmåned'] == 'mnd')
                    $error[] = __('Du har ikke valgt måned i fødselsdato.<br />Fødselsdatoen har ikke blitt oppdatert.', 'profile');
                else
                    update_user_meta($valgt_medlem, 'fødselsdag', esc_attr($_POST['fødselsår'] . '-' . zeroise($_POST['fødselsmåned'], 2) . '-' . zeroise($_POST['fødselsdag'], 2)));
            }
            
            if (!empty($_POST['telefon']))
                update_user_meta($valgt_medlem, 'telefon', esc_attr($_POST['telefon']));
            if (!empty($_POST['adresse']))
                update_user_meta($valgt_medlem, 'adresse', esc_attr($_POST['adresse']));

            /*Sjekker at postnummer er kun tall, og 4 tegn langt*/
            if (!empty($_POST['postnummer'])) {
                if (preg_match("%^[0-9]{4}$%", $_POST['postnummer'])) {
                    if ($wpdb->get_var("SELECT postnr FROM poststed WHERE postnr = " . $_POST['postnummer'])) {
                        update_user_meta($valgt_medlem, 'postnr', esc_attr($_POST['postnummer']));
                    } else {
                        $error[] = __('Postnummeret du har skrevet inn eksisterer ikke', 'profile');
                    }
                } else {
                    $error[] = __('Postnummeret kan kun inneholde tall, og må være 4 tegn langt', 'profile');
                }
            }
            
            if ($_POST['instrument'] != 'null') {
                update_user_meta($valgt_medlem, 'instrument', $_POST['instrument']);
            }
            
            $queries['description'] = update_user_meta($valgt_medlem, 'descroption', $_POST['description']);

            /* Redirect so the page will show updated info. */
            /* I am not Author of this Code- i dont know why but it worked for me after changing below line to if ( count($error) == 0 ){ */
            $medlem_side = 'rediger';
            if (count($error) == 0) {
                $medlem_side = 'profil';
                echo 'Profilen er oppdatert!';
            }
            break;
        case 'Tilbake':
        case 'Avbryt':
            if (isset($_POST['til-side']))
                $medlem_side = $_POST['til-side'];
            if (isset($_POST['idnum']))
                $valgt_medlem = $_POST['idnum'];
            break;
        default:
            echo "Knappen '" . $_POST['action'] . "' har ikke en definert funksjon";
            break;
    }
}
?>
<div id="ham-medlem">
    <?php include('medlem-' . $medlem_side . '.php'); ?>
</div>